home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / texsis / VMS / TEXSIS03.COM < prev    next >
Text File  |  1992-08-02  |  83KB  |  1,941 lines

  1. $! === THIS IS AN ARCHIVE FILE -- DELETE EVERYTHING ABOVE THIS LINE ===
  2. $! === THEN EXECUTE THIS FILE WITH "@TEXSIS03.COM" ===
  3. $! Contents:
  4. $!    Example.tex
  5. $!    Makefile
  6. $!    TXSform.tex
  7. $!    TXSinit.tex
  8. $!    TXSletr.tex
  9. $!    TXSprns.tex
  10. $!    TXSsects.doc
  11. $!    TXStags.tex
  12. $! =========== Example.tex ============
  13. $ copy sys$input Example.tex
  14. % file: Example.tex                                 TeXsis version 2.15
  15. % $Revision: 15.3 $  :  $Date: 92/06/30 14:42:28 $  :  $Author: myers $
  16. %======================================================================*
  17. % This is a sample paper typeset with TeXsis, to give you a quick idea
  18. % of how it's done.  Note: this is just hacked together from an old
  19. % conference proceedings, so it's not a real paper.  -EAM
  20.  
  21.  
  22. \texsis         % this tells everyone that it's a TeXsis manuscript file
  23.  
  24.  
  25. % Saying \draft puts a time-stamp, page number, etc. on the page,
  26. % but you don't want it for the final version of the paper.
  27. %%\draft  
  28.  
  29.  
  30. % Document Format:  uncomment one of these lines to select the style
  31. % in which the paper is printed:
  32. %
  33. %\preprint                       % Preprint style
  34. %\nuclproc                       % Nuclear Physics Proceedings style
  35. %\twinout\tenpoint\def\Tbf{\twelvebf}\def\tbf{\tenbf}
  36. \PhysRev                        % Physical Review style
  37.  
  38. % ---
  39.  
  40. % some macros used in this paper:
  41.  
  42. \def\Kb{{\bar K^2 \over \beta_R}}
  43.  
  44. % ---
  45. % BEGIN:
  46.  
  47. \titlepage                              % begin title page material
  48. \title
  49. Noncompact nonlinear sigma models 
  50. and numerical quantum gravity
  51. \endtitle
  52. \author
  53. Eric Myers, Bryce DeWitt, Rob Harrington, and Arie Kapulkin
  54. Center for Relativity, Department of Physics\\ 
  55. University of Texas, Austin, Texas 78705 USA
  56. \endauthor
  57. \abstract
  58. Studying the $O(2,1)$ nonlinear sigma model is a useful step toward
  59. determining whether or not a consistent quantum theory of gravity (based
  60. on the Einstein-Hilbert action) exists.  Like gravity, the sigma model
  61. is not perturbatively renormalizable, and corresponding Feynman graphs
  62. in the two theories have the same na\"{\i}ve degrees of divergence.  Both
  63. theories also have a single overall dimensionful coupling constant, and
  64. both have a configuration space which is noncompact and curved. The
  65. sigma model allows one to study the renormalizability properties of such
  66. theories without the added complications of local symmetries.  
  67. \endabstract
  68. \bigskip
  69. \endtitlepage   % will start \doublecolumns for \nuclproc
  70.                                         
  71. % ---
  72. % Now start in on the text of the paper...
  73. % ---
  74.  
  75. Quantum Field Theory and the theory of General Relativity are,
  76. separately, probably the two most successful physical theories of this
  77. century.  This notwithstanding, nobody has yet been able to bring the
  78. two together into one complete and consistent quantum theory of gravity.
  79. One major impediment to such a theory is that, unlike gauge field
  80. theories, gravity with the Einstein-Hilbert action
  81.  $$
  82. S = {1 \over 16\pi G_N} \int d^4x\,  \sqrt{g} R
  83. \EQN 1$$
  84. is not renormalizable, at least not by the usual methods of perturbation
  85. theory. This has lead a number of physicists to adopt the position that
  86. General Relativity is only the low energy limit of some other quantum
  87. theory, such as superstring theory.  An alternative view which one
  88. can adopt, however, is that the failure of perturbation theory in the
  89. case of gravity is not an indication that the theory is inconsistent,
  90. but only that the mathematical tools one has used are inadequate.  To
  91. pursue a quantum theory of gravity in this direction one needs a
  92. nonperturbative method of calculation: the methods of lattice field
  93. theory, which have already been applied to gauge theories, are
  94. immediately suggested.  One also needs a simple model with which to test
  95. the ideas of nonperturbative renormalizability without the complicated
  96. structure of the full theory of General Relativity.  This paper
  97. describes our work with such a model, the $O(2,1)$ noncompact nonlinear
  98.  $\sigma$-model.\reference{DeWitt, 1989}
  99. B.S.~DeWitt, ``Nonlinear sigma models in 4 dimensions: a lattice definition,''
  100. lectures given at the International School of Cosmology and Gravitation,
  101. ``Ettore Majorana'' Centre for Scientific Culture, Erice, Sicily, May 1989
  102. \endreference\relax
  103.  
  104. The model we consider consists of three scalar fields $\varphi_a$
  105. described by the action
  106.  $$
  107. S = \half \mu^2 \int d^4 x \, \eta^{ab}
  108.      \del_\mu \varphi_a \del^\mu \varphi_b  \,,
  109. \EQN 2$$
  110. with $\eta_{ab}={\rm diag}(-1,+1,+1)$ and with the fields obeying
  111. the constraint
  112.  $$
  113. -\varphi_0^2 +  \varphi_1^2 +  \varphi_2^2 = -1
  114.         \qquad (\varphi_0 > 0)          \,.
  115. \EQN 3$$
  116. The manifold of constraint is the two dimensional surface of constant
  117. negative curvature represented schematically 
  118. in \Fig{1}.  It is the coset space
  119.  $O(2,1)/O(2)\times Z_2$, but for simplicity we refer to \Eqs{2} and
  120. \Ep{3} as the $O(2,1)$ nonlinear $\sigma$-model.  There are several
  121. reasons this model is of interest:
  122.  
  123. \item{1)}
  124. For dimensionless fields $\varphi_a$ the coupling constant $\mu^2$ has
  125. units of $(length)^2$, the same as $1/G_N$ in the Einstein-Hilbert
  126. action.  Thus $\mu$ plays the role of the Planck mass in the theory.
  127. Furthermore this means that Feynman graphs in the $\sigma$-model have
  128. the same na\"{\i}ve degree of divergence as similar graphs in gravity,
  129. so that the model has the same renormalizability structure (actually the
  130. same perturbative non-renormalizability structure) as the theory of
  131. gravity. 
  132.  
  133. \item{2)}
  134. As in gravity, the fields of the $\sigma$-model obey a constraint,
  135. and the configuration space defined by the constraint is both {\it
  136. curved} and {\it noncompact}.
  137.  
  138. \item{3)}
  139. The surface of constraint is invariant under global $O(2,1)$
  140. transformations, but 
  141. % unlike gravity 
  142. there is no local symmetry in the
  143. model.  This is a great simplification which lets us study just the
  144. renormalizability properties of the model without the added
  145. complications introduced by local symmetries.
  146.  
  147. \item{4)}
  148. Unlike gravity, the Euclidean action of the $\sigma$-model is bounded
  149. from below.  The unboundedness of the gravitational action is a serious
  150. problem which must be dealt with at some point, but one which we want to
  151. avoid entirely for now.
  152.  
  153. \figure{1}
  154. \forceleft
  155. \vskip\colwidth         % just leave some space to glue in figure
  156. %%\epsfbox{o21.ps}        % or include with epsf
  157. \caption{The constraint surface of the $O(2,1)$ noncompact nonlinear
  158.  $\sigma$-model.} 
  159. \endfigure
  160.  
  161. \medskip
  162.  
  163. The transcription of the $\sigma$-model to the lattice is more or less
  164. standard with one exception, our definition of the lattice derivative.
  165. Rather than using the simple difference between field values at
  166. neighboring lattice sites we use the geodesic distance between two
  167. points on the constraint surface.  The lattice action is thus
  168.  $$
  169. S = \half \mu^2 \sum_x a^4 \sum_{\hat\mu}
  170.         [{ \Delta(\varphi(x+\hat\mu a), \varphi(x)) \over a}]^2 \,,
  171. \EQN 4$$
  172. where $\Delta(\varphi,\varphi^\prime)$ is the arc length between
  173.  $\varphi$ and $\varphi^\prime$ on the manifold,
  174.  $$
  175. \Delta(\varphi,\varphi^\prime) = 
  176.         \cosh^{-1}(-\eta^{ab} \varphi_a\varphi^\prime_b) \,.
  177. \EQN 5$$
  178. Our reason for this choice is that it is consistent with the idea that
  179. the fields be restricted only to the constraint surface of the
  180.  $\sigma$-model.
  181. In contrast, simply taking the na\"{\i}ve difference between fields, as
  182. is usually done for compact $\sigma$-models, produces a difference
  183. vector which does not lie in the manifold of constraint.  While both
  184. methods lead to the same classical continuum limit there is nothing that
  185. guarantees that the quantum theories obtained from the two lattice
  186. definitions will be the same.
  187.  
  188.    It is convenient to factor the dependence on the lattice spacing $a$
  189. out to the front of \Eq{4} and to define the dimensionless coupling
  190. constant $\beta = \mu^2 a^2$.  If the theory is nonperturbatively
  191. renormalizable the Planck mass $\mu$ will be renormalized to $\mu_R$,
  192. which results in a renormalized dimensionless coupling constant
  193.  $$
  194. \beta_R = \mu_R^2 a^2   \,.
  195. \EQN 6$$
  196. The renormalized Planck mass defines a characteristic length scale
  197.  $1/\mu_R$ for the interactions of the theory.  The lattice approximation
  198. to the continuum theory will be reliable when $a \ll 1/\mu_R \ll L=Na$.
  199. Considering each inequality separately, this requires
  200.  $$
  201. \mu_R a = \sqrt{\beta_R}  \ll 1 
  202. \qquad \hbox{\rm and} \qquad
  203.  N   \gg {1\over \sqrt{\beta_R}}
  204. \EQN 7$$
  205. In the continuum limit $a \to 0$, hence $\beta \to 0$, and for $\mu_R$
  206. to remain finite this requires $\beta_R \to 0$.  If this condition is
  207. not fulfilled then it would appear to be impossible to define a
  208. consistent quantum field theory from the $\sigma$-model, even
  209. nonperturbatively. 
  210.  
  211. %----------------------------
  212. \figure{2}
  213. \forceright             % force this to the righthand column
  214. \vskip\colwidth         % leave this much space 
  215. %%\epsfbox{beta.ps}       % or include with EPSF
  216. \caption{The renormalized dimensionless coupling constant $\beta_R$
  217. plotted against the bare coupling constant $\beta$ for an $N=10$
  218. lattice.} 
  219. \endfigure
  220. %----------------------------
  221.  
  222. In \Fig{2} we show $\beta_R$ plotted as a function of $\beta$ as
  223. obtained from Monte Carlo simulations on an $N=10$ lattice.  As can
  224. clearly be seen, $\beta_R$ vanishes nowhere.  We therefore conclude that
  225. the $O(2,1)$ nonlinear sigma model does not have an interacting
  226. continuum limit.  One may view $1/\mu_R$ as the renormalized coupling
  227. constant in the theory, in which case our result implies that the model
  228. is ``trivial'' (in the technical sense) in that the continuum limit is a
  229. free field theory.
  230.  
  231. This work was supported by NSF grants PHY\-8617103 and PHY\-8919177.
  232.  
  233. \smallskip
  234. %\nosechead{References}         % header for references
  235. %\nobreak
  236. \ListReferences
  237.  
  238. \bye
  239.  
  240. %>>> EOF Example.tex <<<
  241. $! =========== Makefile ============
  242. $ copy sys$input Makefile
  243. # texsis/Makefile
  244. # $Revision: 15.24 $  :  $Date: 92/07/09 13:57:12 $  :  $Author: myers $
  245. # ======================================================================*
  246. # This is the Makefile for the TeXsis physics format.  See the README
  247. # file for more details about TeXsis.  For information about
  248. # installation on non-Unix machines run the file Install.tex through
  249. # plain TeX.
  250. #
  251. # To make a preloaded format for texsis simply give the command 
  252. #
  253. #     make texsis
  254. #
  255. # To make a copy of the manual say
  256. #
  257. #     make Manual
  258. #
  259. # If you are installing TeXsis on your system then you can have
  260. # things automatically installed in the right places by editing
  261. # the paramters below and then saying:
  262. #
  263. #     make install
  264. #
  265. # (To install things in the system directories you must be the superuser.)
  266. #
  267. # This file is a part ot TeXsis.
  268. # Copyright (C) 1990, 1991 by Eric Myers and Frank Paige.
  269. # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  270. # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  271. # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  272. # =====================================================================*
  273. .SUFFIXES: .tex .doc .txs
  274.  
  275.  
  276. # TEXSISDIR is where the TeXsis sources live. 'make install' will
  277. # put them there.  The source files and manual are supposed
  278. # to be available for people to copy, so these should be out in
  279. # the open.  Suggested place is /usr/local/lib/tex/texsis or similar
  280. #TEXSISDIR=$(HOME)/tex/texsis       # for personal installation
  281. TEXSISDIR=/usr/local/lib/tex/texsis 
  282.  
  283.  
  284. # TEXSISFORMAT is the directory where 'make install' will put the
  285. # texsis.fmt.  This is usually /usr/local/lib/tex/formats unless 
  286. # your TeX looks somewhere else for format files.
  287. #TEXSISFORMAT=$(TEXSISDIR)             # personal installation
  288. TEXSISFORMAT=/usr/local/lib/tex/formats 
  289.  
  290.  
  291. # TEXSISINPUTS is the directory where 'make install' will put the
  292. # style files and patch files so that TeXsis will find them.
  293. # This is usually /usr/local/lib/tex/inputs unless your TeX 
  294. # looks somewhere else for input files.  Sometimes older versions of 
  295. # TeX call the directory 'macros' rather than 'inputs'.  
  296. #TEXSISINPUTS=$(TEXSISDIR)             # personal installation
  297. #TEXSISINPUTS=/usr/local/lib/tex/macros     # old variation
  298. TEXSISINPUTS=/usr/local/lib/tex/inputs 
  299.  
  300.  
  301. # VIRTEX is the full path name of the virtex command on your system.
  302. # TeX 3.0 uses the name it is called by as the format to load, so 
  303. #  'make install' makes a link to virtex called texsis.
  304. VIRTEX=/usr/local/bin/virtex 
  305.  
  306.  
  307. # BINDIR is the directory where your executables are kept, and in
  308. # particular where to put the texsis command (which is a link to
  309. # $(VIRTEX) above.  For personal installation you can use
  310. #BINDIR=$(HOME)/bin                 # for personal installation
  311. # For system installation this is usally /usr/local/bin.
  312. BINDIR=/usr/local/bin 
  313.  
  314.  
  315. # MANDIR is where to put the texsis manual page.  This is
  316. # usually /usr/man/man1 or /usr/local/man/man1, depending
  317. # on how you take care of your man pages.  This is just the Unix man
  318. # page, not the full TeXsis manual.
  319. #MANDIR=$(HOME)/man/man1         # personal man pages, if you have them
  320. MANDIR=/usr/local/man/man1 
  321.  
  322.  
  323. # INSTALL is the command used by 'make install' to put the 
  324. # format and manual pages in place.  This can be /bin/cp or /bin/mv, 
  325. # as you choose, or you can get fancy and use /bin/install.
  326. #INSTALL=/bin/mv 
  327. INSTALL=/bin/cp 
  328.  
  329. # (End of installation parameters.  Don't monkey with the stuff below.)
  330. # =====================================================================*
  331. # What follows describes how to make the texsis format file and the
  332. # manual and how to install this stuff on the system
  333. #
  334. .SILENT:        # let's hide the magic...
  335.  
  336. # VERSION is the current version number.
  337.  
  338. VERSION=2.15
  339.  
  340. # SGI's need to be told explicitly to use the Bourne shell:
  341. SHELL=/bin/sh 
  342.  
  343.  
  344. # the default target is to make both the format and the manual
  345.  
  346. all: texsis Manual cover
  347.  
  348. texsis: texsis.fmt
  349.  
  350. Manual: Manual.dvi cover
  351. manual: Manual.dvi
  352.  
  353. cover:  TXScover.dvi
  354.     mv TXScover.dvi cover.dvi
  355.  
  356.  
  357. # TeXsis source files:
  358.  
  359. TEXSIS= texsis.tex TXSfonts.tex TXSinit.tex TXSmacs.tex TXSprns.tex \
  360.         TXSeqns.tex TXSrefs.tex TXSsects.tex TXStags.tex TXStitle.tex \
  361.         TXSenvmt.tex TXSfigs.tex TXSfmts.tex TXSdcol.tex TXSletr.tex \
  362.         TXSform.tex TXSmemo.tex TXSconts.tex TXSsymb.tex \
  363.         TXSruled.tex TXShead.tex 
  364.  
  365.  
  366. # how to make the texsis.fmt format file from the sources:
  367.  
  368. texsis.fmt:  $(TEXSIS)
  369.     initex \&plain texsis '\dump'
  370.  
  371.  
  372. # There may be more style files than these at your installation,
  373. # but these are the ones that come with the current TeXsis distribution,
  374. # and we want to be sure we get all of them out of RCS and have them
  375. # around for the install or making the distribution.
  376.  
  377. STYLES=    AIP.txs CVformat.txs Elsevier.txs IEEE.txs WorldSci.txs \
  378.         nuclproc.txs PhysRev.txs  epsf.tex index.tex Tablebody.txs \
  379.     thesis.txs
  380.  
  381.  
  382. # TeXsis manual:
  383.  
  384. MANUAL= Manual.tex TXSdoc.doc TXSdocM.doc TXSdocR.doc TXSdoc0.doc \
  385.         TXSintro.doc TXSfonts.doc TXSeqns.doc TXSprns.doc TXSsymb.doc \
  386.         TXSrefs.doc TXSenvmt.doc TXSfigs.doc TXSruled.doc \
  387.         TXSsects.doc TXSfmts.doc TXSletr.doc TXSdcol.doc TXStags.doc \
  388.         TXSmisc.doc TXSinstl.doc TXSapxF.doc TXSrevs.doc TXSend.doc \
  389.     TXScover.doc
  390.  
  391. Manual.dvi: $(MANUAL) texsis.fmt
  392.     if [ -s Manual.aux ]; then \
  393.           echo "% Manual.aux exists.  Making a single pass..." ;\
  394.         else \
  395.           echo "% First pass to create Manual.aux file..." ;\
  396.           tex \&texsis Manual ;\
  397.           echo "% Second pass..." ;\
  398.         fi
  399.     time tex \&texsis Manual 
  400.  
  401.  
  402. # Cover for a 3-ring binder or similar:
  403.  
  404. TXScover.dvi:  TXScover.doc
  405.     tex \&texsis TXScover.doc
  406.  
  407. # 'make install' not only copies the files to where they should
  408. # be but also creates a link named texsis to the executable virtex.
  409. # This is because TeX 3.0 looks at the name it is invoked by
  410. # and tries to load a format file by that name.  If you have a version
  411. # older than 3.0 you may want to make an undump'd version of TeXsis
  412. # instead.  See the TeX distribution for info about undump.
  413.  
  414. install:  texsis.fmt  Manual.dvi $(TEXSIS) $(MANUAL) texsis.1 $(STYLES)
  415.     if [ ! -d $(TEXSISFORMAT) ]; then \
  416.           /bin/mkdir -p $(TEXSISFORMAT); fi
  417.     $(INSTALL) texsis.fmt $(TEXSISFORMAT)
  418.     if [ ! -d $(TEXSISINPUTS) ]; then \
  419.           /bin/mkdir -p $(TEXSISINPUTS); fi
  420.     if [ -f $(TEXSISINPUTS)/TXSpatch.tex ]; then \
  421.           /bin/mv $(TEXSISINPUTS)/TXSpatch.tex TXSpatch.old ; fi
  422.     -/bin/rm -f $(BINDIR)/texsis
  423.     /bin/ln -s $(VIRTEX)  $(BINDIR)/texsis
  424.     for name in $(STYLES)  ; do \
  425.            $(INSTALL) $$name $(TEXSISINPUTS) ; \
  426.         done
  427.     if [ -f TXSpatch.tex ]; then \
  428.           $(INSTALL) TXSpatch.tex $(TEXSISINPUTS) ; fi
  429.     if [ ! -d $(TEXSISDIR) ]; then \
  430.           /bin/mkdir -p $(TEXSISDIR); fi
  431.     for name in $(TEXSIS)  ; do \
  432.            $(INSTALL) $$name $(TEXSISDIR) ; \
  433.      done
  434.     for name in $(MANUAL) ; do \
  435.         $(INSTALL) $$name $(TEXSISDIR) ; \
  436.         done
  437.     if [ -f TXSsite.tex ]; then $(INSTALL) TXSsite.tex $(TEXSISDIR) ; fi
  438.     $(INSTALL) Manual.dvi $(TEXSISDIR)
  439.     if [ -d $(MANDIR) ]; then $(INSTALL) texsis.1 $(MANDIR); fi
  440.     echo "TeXsis $(VERSION) installed."
  441.  
  442.  
  443. # 'make Install' instead uses Plain TeX to print the installation
  444. # instructions from the appendix of the Manual
  445.  
  446. Install:  Install.dvi
  447.  
  448. Install.dvi:  Install.tex TXSmacs TXSenvmt TXSdocM.doc
  449.     tex Install
  450.     echo "Created Install.dvi -- print this for the instructions."
  451.  
  452. # (end of installation instructions)
  453. # =====================================================================*
  454. # DISTRIBUTION:
  455. #
  456. # The following are instructions for making the distribution files
  457. # for propagating TeXsis to other sites.  You probably don't need 
  458. # to worry about this stuff.
  459. #
  460. # The targets 'UNIX' and 'VMS' create a collection of shar bundles 
  461. # for distributing TeXsis to other sites.  The list of files to pack 
  462. # is in the file MANIFEST, the instructions on how to pack are in 
  463. # bundle and vms_bundle.  These require that you have the makekit
  464. # program! 
  465.  
  466. UNIX: bundle MANIFEST $(TEXSIS) $(MANUAL) Install.tex texsis.1 
  467.     bundle
  468.     touch .Unix.bundled
  469.  
  470. VMS: vms_bundle MANIFEST .Unix.bundled
  471.     vms_bundle
  472.     touch .VMS.bundled
  473.  
  474.  
  475. # The target 'tar' creates the compressed tar archive of the TeXsis
  476. # distribution. 
  477.  
  478. TARNAME=TeXsis-$(VERSION)
  479. TARFLAGS=cof            # the -o is to suppress chown/chgrp info
  480.  
  481. tardir:  $(TARNAME)
  482.  
  483.  $(TARNAME):  UNIX unbundle 
  484.     if [ ! -d $(TARNAME) ] ; then /bin/mkdir $(TARNAME) ; fi
  485.     /bin/cp  TEXSIS?? $(TARNAME)
  486.     /bin/cp unbundle  $(TARNAME) ; chmod +x $(TARNAME)/unbundle
  487.     ( cd $(TARNAME) ; unbundle -c ; /bin/rm TEXSIS?? )
  488.  
  489. tar:  $(TARNAME)
  490.     echo "building tar archive..."
  491.     /bin/tar $(TARFLAGS) $(TARNAME).tar  $(TARNAME)
  492. #    echo "compessing the tar file..."
  493. #    compress $(TARNAME).tar
  494.  
  495. cleantar:
  496.     /bin/rm -r $(TARNAME)
  497.  
  498. #
  499. # mtexsis: mTeXsis is a mini TeXsis for e-prints
  500. #
  501.  
  502. MTEXSIS = TXSfonts.tex TXSinit.tex TXSmacs.tex TXShead.tex TXSeqns.tex \
  503.     TXSprns.tex TXSrefs.tex TXSsects.tex TXStags.tex TXStitle.tex \
  504.     TXSenvmt.tex TXSfmts.tex TXSfigs.tex TXSruled.tex TXSsymb.tex
  505.  
  506. mtexsis: mtexsis.tex
  507.  
  508. mtexsis.tex : mtexsis.pre $(MTEXSIS) mtexsis.post
  509.     cat mtexsis.pre > mtexsis.tex
  510.     for name in $(MTEXSIS)  ; do \
  511.            ./strip $$name >> mtexsis.tex ; \
  512.         done
  513.     cat mtexsis.post >> mtexsis.tex
  514.  
  515.  
  516. # The processed index file Manual.ind is made using the makeindex
  517. # program, which the user may not have.  Hence we make it for the
  518. # distribution.
  519.  
  520. Manual.ind:  Manual.idx
  521.     makeindex Manual.idx
  522.  
  523.  
  524. # ---------- diff patch file from previous version, using `patch`
  525.  
  526. OLD=2.14
  527. NEW=2.15
  528. PATCHFILE=diff-$(OLD)-$(NEW)
  529.  
  530. patchfile: 
  531.     -diff -rc2  TeXsis-$(OLD) TeXsis-$(NEW) > $(PATCHFILE) 
  532.     grep "^Only" $(PATCHFILE)
  533.  
  534. # (end of distribution)
  535. #======================================================================*
  536. # RCS: target to get fresh copy of code out of RCS
  537.  
  538. GET=maxco    # how to checkout from RCS 
  539.  
  540. RCS:  check-out
  541.  
  542. check-out: get-Source get-Manual 
  543.  
  544. get-Source:
  545.     for name in $(TEXSIS) ; do \
  546.            $(GET) $$name ; \
  547.         done
  548.  
  549. get-Manual:
  550.     for name in $(MANUAL) ; do \
  551.            $(GET) $$name ; \
  552.         done
  553.  
  554. #======================================================================*
  555. # preview: target for previewing manual on Sun Workstation
  556. #          This mostly useful while I'm working on it.  The tex-previewer
  557. #          command has to be defined locally on your machine.
  558.  
  559.  
  560. preview: Manual.dvi
  561.     echo "previewing with texsun..."
  562.     -texsun -l 1 -autoReload Manual.dvi 
  563.  
  564. #======================================================================*
  565. # clean up a bit
  566.  
  567. clean:  
  568.     /bin/rm -f *.log
  569.     /bin/rm -f Manual.ref
  570.     /bin/rm -f Manual.cnt
  571.     /bin/rm -f Manual.tbl
  572.     /bin/rm -f Manual.fgl
  573.  
  574. #>>> EOF Makefile <<<
  575. $! =========== TXSform.tex ============
  576. $ copy sys$input TXSform.tex
  577. % file: TXSform.tex                              TeXsis version 2.15
  578. % $Revision: 15.3 $  :  $Date: 92/06/23 19:33:23 $  :  $Author: myers $
  579. %======================================================================*
  580. % FORM LETTERS                                  E. Myers and F.E. Paige
  581. %
  582. %       Macros to type form letters with a common text to a list of 
  583. % people. The syntax is:
  584. %
  585. %       \formletters{<letterhead-stuff>}{<text-file-name>}
  586. %       \BL     Prof. John Doe
  587. %               Physics Dept
  588. %               U. of Nowhere
  589. %               Nowhere, Somewhere 12345679
  590. %               \V\Whoever{Prof.~Doe}
  591. %               \EL
  592. %       \BL     Dr.\ William Barcode
  593. %               Department of Physics
  594. %               Ferbelab
  595. %               Batcave, IL 60510 USA 
  596. %               \V\Whoever{Dr.\ Barcode}
  597. %               \EL
  598. %       \BL ...
  599. %           ... \EL
  600. %       ...
  601. %       \bye
  602. %
  603. % where <letterhead-stuff> is stuff to be executed before the address is
  604. % printed and <text-file-name> is the name of a file containing the
  605. % generic text of the letter following the standard TeXsis letter format,
  606. % beginning with \body:
  607. %
  608. %       \body
  609. %       Dear \Whoever,
  610. %            ...
  611. %       \closing
  612. %       Sincerely yours,
  613. %       Joe User
  614. %       \endletter
  615. %
  616. %  The text file can use any other control sequences defined by 
  617. %  \V\name{...} between \BL and \EL.
  618. %         
  619. %-----------------------------------------------------------------------
  620. \message{Form Letters.}
  621.  
  622. %    \formletters{<letterhead>}{<file>} sets things up to make a series of
  623. % form letters.  The commands in <letterhead> are executed before the
  624. % address, to make  a letterhead or print the sender's phone number.
  625. % The file named by <file> contains the text of the letter, which is 
  626. % printed below the address. This text can use any ``variable'' control
  627. % sequences defined by \V in the address list.  
  628.  
  629.  
  630. \def\formletters#1#2{%          %
  631.    \def\formlabels{\relax}%     % disable \formlables
  632.    \def\formletterhead{#1}%     % save letterhead definitions
  633.    \def\TXTfile{#2}%            % save file name for letter text
  634.    \auxswitchfalse              % no .AUX file
  635.    \refswitchfalse              % no references either
  636.    \texsis                      % initialize TeXsis
  637.    \def\BL{\BLletter}%          % \BL starts form letter
  638.    \def\FL{\BLletter}%          % \FL is synonym for \BL
  639.    \def\EL{\ELletter}%          % \EL ends form letter
  640.    \def\ELBL{\ELletter\BLletter}%
  641.    \def\IL{\ILletter}%          %
  642.    \def\ELIL{\ELletter\ILletter}%
  643.    \def\endmode{\relax}%        % initially does nothing
  644.    \let\V=\gdef                 % \V\name  defines variable \name
  645.    \def\endletter{\endmode}%    % \endletter does not end job
  646.    \def\endmode{\relax}%        % start with null \endmode
  647.    \def\endform{\relax}%        % ending is just \bye
  648.    \LetterFormat                % and set up for letters
  649. }           
  650.          
  651. %  \BLletter is \BL for letters.  It begins a new formletter.
  652.          
  653. \long\def\BLletter{% do an individual form letter
  654.    \endmode                             % end any previous mode
  655.    \def\endmode{\relax}%                % but ending this mode is nothing
  656.    \pageno=1                            % start each letter on page 1
  657.    \formletterhead                      % do the letterhead stuff first
  658.    \begingroup\obeylines                % to look for line endings in addresses
  659.    \GetFormAddress}                     % and go get address
  660.  
  661. %  \GetFormAddress gets the address for form letters
  662.                                       
  663. {\obeylines                             % look for line end to mark #1
  664. \gdef\GetFormAddress#1               
  665. {\ifx\EL#1\relax\endgroup\else          % if just \EL then end \obeylines
  666.    \gdef\addressee{#1}%                 % addressee is first line of address
  667.    \global\advance \FLcount by 1        % advance count of letters printed
  668.    \emsg{\the\FLcount.\space \addressee\space}% show letters printed
  669.    \def\BL{\emsg{> . . . . . . . Warning! \NX\BL found before \NX\EL}\ELBL}%
  670.    \def\IL{\emsg{> . . . . . . . Warning! \NX\IL found before \NX\EL}\ELIL}%
  671.    \global\setbox\theaddress=\vbox\bgroup% start a vbox
  672.    \parindent=0pt                       % no indent, since we are \obeylines
  673.    #1\relax                                   
  674.  \fi}%                                
  675. }% end of \obeylines for definition     
  676.                                         
  677. %  \ELletter is \EL for letters.  It boxes up the address and prints
  678. %  it, then reads in the generic text of the letter from \TXTfile
  679.  
  680. \def\ELletter{%  end of address, print the form letter
  681.    \vss\egroup                          % end the \vbox
  682.    \endgroup                            % end the \obeylines
  683.    \copy\theaddress                     % dump the address to the page
  684.    \message{\space\space}%              % some whitespace in log file
  685.    \input\TXTfile \relax                % read in text of letter from file
  686.    \vfill\eject}                        % end the page
  687.                                 
  688. %       \IL ignores a letter (use in place of \BL to keep from sending
  689. % to a particular name on the list).  You MUST end the entry in the 
  690. % list with \EL !               
  691.                                 
  692. \long\def\ILletter#1\EL{\relax}            
  693. \long\def\ILlabel#1\EL{\relax}            
  694.  
  695. %----------------------------------------------------------------------
  696. \message{FormLabels.}
  697.  
  698. %   \formlabels uses the same input file as \formletters but prints
  699. % mailing labels. It is assumed that there are three columns of labels
  700. % on a page. Dimensions are for 8 labels per column and Barbara's printer.
  701.  
  702. \newdimen\fullHsize     \fullHsize=8.5in        % hsize for label page
  703. \newdimen\fullVsize     \fullVsize=11.50in      % vsize for label page
  704. \newdimen\lblHsize      \lblHsize=2.833in       % width of standard label
  705. \newdimen\lblVsize      \lblVsize=1.365in       % ht. of std. label - a bit
  706. \newdimen\lblVoffset    \lblVoffset=-.900in     % vertical starting position
  707. \newdimen\lblHoffset    \lblHoffset=-0.750in    % horizontal starting position
  708.  
  709. \newcount\FLcount                               % count the number of letters
  710.  
  711. \newbox\lblLcol                                 % box for left column
  712. \newbox\lblMcol                                 % box for middle column
  713.       
  714. \def\formlabels{%                       % form labels instead of letters
  715.    \def\formletters##1##2{\relax}%      % disable \formletters
  716.    \auxswitchfalse                      % no .AUX file
  717.    \refswitchfalse                      % no references either
  718.    \texsis                              % initialize TeXsis
  719.    \tenpoint\singlespaced               % 10pt to fit long addresses
  720.    \nopagenumbers                       % suppress page numbering
  721.    \raggedbottom                        % ragged page bottom
  722.    \hoffset=\lblHoffset                 % use full page, no left margin
  723.    \voffset=\lblVoffset                 % adjust for printer vertical offset
  724.    \hsize=\fullHsize                    % use full page width
  725.    \vsize=\fullVsize                    %     and full length
  726.    \def\lblflag{L}%                     % set flag to start in left column
  727.    \def\BL{\BLlabel}%                   % define \BL for labels
  728.    \def\FL{\BLlabel}%                   % synonym is \FL
  729.    \def\EL{\ELlabel}%                   % define \EL to end label
  730.    \def\ELBL{\ELlabel\BLlabel}%         % 
  731.    \def\IL{\ILlabel}%                   %
  732.    \def\ELIL{\ELlabel\ILlabel}%         %
  733.    \def\endmode{\relax}%                % initially does nothing
  734.    \def\endform{\endformlabels}%        % end form labels
  735.    \let\V=\gdef                         % \V\name  defines variable \name
  736. }
  737.  
  738. \def\BLlabel{\begingroup\obeylines      % pay attention to line endings
  739.    \hsize=\lblHsize                     % with width of label
  740.    \GetLabelAddress}%                   % get address in a box
  741.  
  742. %  \GetLabelAddress gets the address for form labels
  743.                                       
  744. {\obeylines                             % look for line end to mark #1
  745.  \gdef\GetLabelAddress#1               
  746. {\ifx\EL#1\relax\endgroup\else          % if just \EL end \obeylines
  747.    \gdef\addressee{#1}%                 % addressee is first line of address
  748.    \global\advance \FLcount by 1        % advance count of letters
  749.    \emsg{\the\FLcount.\space \addressee\space}% show letters printed
  750.    \def\BL{\emsg{> . . . . . . . Warning! \NX\BL found before \NX\EL}\ELBL}%
  751.    \def\IL{\emsg{> . . . . . . . Warning! \NX\IL found before \NX\EL}\ELIL}%
  752.    \global\setbox\theaddress=\vbox to \lblVsize\bgroup% start a vbox
  753.    \hsize=\lblHsize                     % with width of label
  754.    \parindent=0pt                       % no indent, since we are \obeylines
  755.    #1                                   
  756.  \fi}%                                
  757. }% end of \obeylines for definition     
  758.                                         
  759. %  \ELlabel ends the address label, with the address stored in box
  760. %  \theaddress.  If we are in the left or centre column we then 
  761. %  store the address in other boxes.  If we are in the right column
  762. %  then we print all three boxes across the line.
  763.         
  764. \def\ELlabel{\vss\egroup                % end the \vbox
  765.    \endgroup                            % done with \obeylines
  766.    \if L\lblflag                        % if in left column 
  767.      \global\setbox\lblLcol=\box\theaddress     % store in \lblLcol
  768.       \gdef\lblflag{M}%                 % next column is middle column
  769.    \else \if M\lblflag                  % else if middle column
  770.       \global\setbox\lblMcol=\box\theaddress    % store in \lblMcol
  771.       \gdef\lblflag{R}%                 % next column is right column
  772.    \else                                % else right column, so
  773.       \line{\box\lblLcol                % print all 3 boxes
  774.             \box\lblMcol                %    across the 
  775.             \box\theaddress\hss}%       %       page...
  776.       \gdef\lblflag{L}%                 % reset to left column
  777.    \fi\fi                               % end of if's
  778. }%
  779.  
  780. %  \endform=\endformlabels ends the form labels gracefully. \lblflag is
  781. %  set to the next column, so...
  782.  
  783. \def\endformlabels{%                     %
  784.    \if M\lblflag%                        % last address in left
  785.       \line{\box\lblLcol\hss}%           % only left box
  786.    \else \if R\lblflag%                  % last address in middle
  787.       \line{\box\lblLcol\box\lblMcol\hss}% left and middle boxes
  788.    \fi\fi}%                               % else printed by \EL
  789.  
  790. %>>> EOF TXSform.tex <<<
  791. $! =========== TXSinit.tex ============
  792. $ copy sys$input TXSinit.tex
  793. % TXSinit.tex                                  TeXsis version 2.15  
  794. % $Revision: 15.3 $  :  $Date: 92/05/31 20:59:21 $  :  $Author: myers $
  795. %======================================================================*
  796. % TXSinit - Initialization for TeXsis -  This file is a part of TeXsis
  797. %               (C) copyright 1991 by Eric Myers and Frank Paige
  798. %
  799. % Make @ signs act like letters, temporarily, to avoid conflict
  800. % between user names and internal control sequences of plain format.
  801. % \inittexsis changes this back at run time
  802. \message{Initialization.}
  803. \catcode`@=11
  804.  
  805. % Philosophy: unlike formats like LaTeX, you should never create a macro
  806. % with the same name as one found in the TeXbook, unless you are sure that
  807. % it will behave the way the TeXbook says it does.  You can extend it, 
  808. % but don't change the meaning.  That way the user can always go back to 
  809. % "plain" TeX to do strange or complicated things.
  810.  
  811. % Plain defines a bunch of constants which improve TeX's speed and
  812. % space utilization; the ones we use are:
  813. % \z@ = 0 or 0pt, \p@ = 1pt (or just pt), \@ne = 1, \@M=10000
  814.  
  815. % set some integer parameters:
  816.  
  817. \uchyph\@ne             % allow capitalized words to be split
  818. \brokenpenalty\@M       % don't break hyphens across pages
  819. \widowpenalty\@M        % penalize for widowing lines
  820. \clubpenalty\@M         % penalize for club lines (break after first line
  821.                         % in paragraph)
  822.  
  823. % Counters -  (Moved to the packages that use them!)
  824. % Rule is:  The counter should hold the value for the most recent usage
  825. % (this is so we can refer to it later without having to subtract one
  826. % from it.  It also allows us a way to determine if a given counter has
  827. % been used; for example, if any \subsections have appeared in the current
  828. % section then the count will be non-zero)
  829.  
  830. % I/O ALLOCATION: all packages do their own I/O allocation when \Input'ed.
  831. % These are used by \texsis to read mods or patches
  832.  
  833. \newread\patchfile      % input for run-time patches to TeXsis
  834. \newread\modfile        % input for run-time local modifications to TeXsis
  835.  
  836. %==================================================*
  837. % Run time Initialization for opening files and such is now
  838. % performed by the macros that use those files.  \texsis just
  839. % sets up the TeXsis defaults, instead of the Plain TeX defaults.
  840. % This replaces \inittexsis, which is still okay to use.  (For now.)
  841.  
  842. \long\def\texsis{%
  843.     \quoteon                            % automatic quote balancing is ON
  844.     \autoparens                         % automatic paren balancing is ON
  845.     \ATlock                             % now @ is no longer a letter
  846.     \pageno=1                           % be sure to start on page one
  847.     \colwidth=\hsize                    % column width assumed \hsize
  848.     \headline={\HeadLine}\headlineoffset=0.5cm % TeXsis running headlines
  849.     \footline={\FootLine}\footlineoffset=0.5cm %    and footlines
  850.     \twelvepoint                        % start in 12 pt type
  851.     \doublespaced                       % and doublespaced
  852.     \SetDate                            % initialize the dates
  853.     \newlinechar=`\^^M                  % <CR> breaks lines in file output
  854.     \overfullrule=0pt                   % don't mark overfull \hbox`s
  855.     }
  856.  
  857. \def\inittexsis{\texsis}                        % synonym (2.11 and before)
  858. \def\texsisinit{\texsis}                        % synonym
  859. \def\initexsis{\texsis}                         % synonym
  860. \def\initTeXsis{\texsis}                        % synonym
  861.  
  862.  
  863. % set the dates to today's date.  \adate=American, \edate=European
  864.  
  865. \def\SetDate{\relax
  866.   \xdef\adate{\monthname{\the\month}~\number\day, \number\year}%
  867.   \xdef\edate{\number\day~\monthname{\the\month} \number\year}%
  868.   }
  869.  
  870.  
  871. %=====================================================================
  872. % \ReadPatches looks to see if there is a patch file out there called 
  873. % \TXSpatches.  If it is, read it in.  Should be run-time system 
  874. % updates and patches and such.  This use to be called by \texsis,
  875. % but is now inclued in \everyjob.
  876. % [Porting Note! On non-VMS machines change the \openin's below.
  877. %  on a VAX/VMS they have to be done with ".TEX"]
  878.  
  879. \def\ReadPatches{\relax
  880.     \immediate\openin\patchfile=\TXSpatches.tex % try to open patch file
  881.     \ifeof\patchfile                    % is it EOF?  Then it isn't there
  882.          \closein\patchfile             % so just close it.
  883. %%%%         \message{No patch file \TXSpatches\space found.}%%
  884.     \else\immediate\closein\patchfile   % close it so to read with \Input
  885.        \Input\TXSpatches.tex \relax         % \Input the patches
  886.     \fi
  887.  
  888. % See if there is a modifications file out there called \TXSmods.  If it is,
  889. % read it in.  Should be personal modifications to macros and such. 
  890. % [see note above for non-Vax machines.]
  891.  
  892.     \immediate\openin\modfile=\TXSmods.tex \relax % try to open mod file
  893.     \ifeof\modfile                              % is it EOF?  Then not there
  894.        \closein\modfile                         % so just close it.
  895.     \else\immediate\closein\modfile             % close it to read with \Input
  896.        \Input\TXSmods.tex \relax                % \Input the mod file
  897.     \fi
  898. }
  899.  
  900.  
  901. %======================================================================*
  902. % LOADED and AUTOLOADED styles:
  903. %
  904. % Special document layouts can be loaded from a ``style'' file as needed.
  905. % To load a particluar layout called \foo from the file foobar.txs use:
  906. %
  907. %       \loadstyle\foo{foobar.txs}
  908. %
  909. % (This is similar to \documentstyle in LaTeX, but we consider that
  910. % to be a reserved word for LaTeX.)  By convention TeXsis style files
  911. % end with ``.txs'' to distinguish them from LaTeX style files.
  912. %
  913. % Note 1:  The style file foobar.txs must be readable at run time, 
  914. % either from the current directory, in one of the directories 
  915. % where your particular version of TeX looks for the \input command.
  916. %
  917. % Note 2:  The control sequence \foo must be redefined in the style 
  918. % file, since the new version of \foo is invoked after the file is 
  919. % loaded.  If it is not redefined we avoid the potential infinite loop 
  920. % and instead post an error message.
  921.  
  922. \newread\txsfile                % to read style files
  923.  
  924.  
  925. \def\loadstyle#1#2{%            % load a definition for #1 from file #2
  926.    \def#1{\@loaderr{#1}}%       % disable #1 (just in case...)
  927.    \ATunlock                    % make @ a letter, in case it's in the file
  928.    \immediate\openin\txsfile=#2 % try to open the file
  929.    \ifeof\txsfile               % if end of file, then
  930.       \emsg{> Can't find the file #2}% #1 below will be \@loaderr
  931.       \closein\txsfile          % just close the file
  932.    \else                        % file exists in path, so...
  933.       \closein\txsfile          % close it to read it
  934.       \input #2 \relax          % load the file with new \def
  935.    \fi                          % end of \ifeof
  936.    \ATlock                      % @ now no longer a letter
  937.    #1}                          % now use the new definitions
  938.  
  939.  
  940. % It's an error if the macro #1 was not redefined in the style file:
  941. % [if we didn't change the definition of #1 to something else we
  942. % would just keep reading the (non-existent) file over and over.]
  943.  
  944. \newhelp\@utohelp{%
  945. loadstyle: The macro named above was supposed to be defined^^J%
  946. In the style file that was just read, but I couldn't find^^J%
  947. the new definition in that file.  Maybe you can learn something^^J%
  948. from the comments in that style file, or find someone who knows^^J%
  949. something about it.}
  950.  
  951. \def\@loaderr#1{% longer help message for \loadstyle error
  952.    \newlinechar=10                              % ^^J is line break
  953.    \errhelp=\@utohelp                           % longer help message
  954.    \errmessage{No definition of \string#1 in the style file.}}
  955.  
  956.  
  957. % AUTOLOAD:
  958. %    Many of the most basic special document layouts are kept in
  959. % style files, but we don't want the user to have to know which
  960. % file is which.  Hence we use \autoload to tell it to automatically
  961. % load the true definition from the style file if the layout
  962. % (or something from inside it) is called for.
  963. % \autoload\foo{file} defines \foo so that it's full definition 
  964. % is read from the named file when \foo is invoked.
  965.  
  966. \def\autoload#1#2{%     automatically load a definition from a file
  967.    \def#1{\loadstyle#1{#2}}}
  968.  
  969.  
  970. % List of autoloaded document styles:
  971.  
  972. \autoload\nuclproc{nuclproc.txs}        % Nuclear Physics proceedings 
  973. \autoload\NorthHolland{Elsevier.txs}    % North-Holland single column
  974. \autoload\NorthHollandTwo{Elsevier.txs} % North-Holland double column
  975. \autoload\WorldScientific{WorldSci.txs} % World-Scientific proceedings
  976. \autoload\IEEEproceedings{IEEE.txs}     % IEEE conference proceedings
  977. \autoload\IEEEreduced{IEEE.txs}         % 75% reduced IEEE proceedings
  978. \autoload\AIPproceedings{AIP.txs}       % American Institute of Physics
  979. \autoload\CVformat{CVformat.txs}        % sample macros for Curriculum Vitae
  980. \autoload\PhysRev{PhysRev.txs}          % Physical Review 2-column layout
  981.  
  982. %  Indexing macros using MakeIndex are loaded from index.tex
  983.  
  984. \autoload\markindexfalse{index.tex}\autoload\markindextrue{index.tex}
  985. \autoload\makeindexfalse{index.tex}\autoload\makeindextrue{index.tex}
  986. \autoload\idx{index.tex}\autoload\index{index.tex}\autoload\theindex{index.tex}
  987.  
  988.  
  989. % Other styles which you want to be automatically loaded can 
  990. % defined in the local customization file TXSsite.tex
  991.  
  992. % For other basic document styles which are not loaded from style files see
  993. % TXSfmts.tex.
  994.  
  995. %>>> EOF TXSinit.tex <<<
  996. $! =========== TXSletr.tex ============
  997. $ copy sys$input TXSletr.tex
  998. % file: TXSletr.tex                              TeXsis version 2.15
  999. % $Revision: 15.2 $  :  $Date: 92/06/18 13:15:13 $  :  $Author: paige $
  1000. %======================================================================*
  1001. % LETTER FORMAT                                   E. Myers and F.E. Paige
  1002. %
  1003. %       Format for typing simple business letters.  Taken almost verbatim 
  1004. %  from The TeXbook, but modified to be a TeXsis "layout".
  1005. %
  1006. %-----------------------------------------------------------------------
  1007. %       The following format is appropriate for use with TeXsis and BNL 
  1008. % stationary. It can easily be adopted for other stationary or even for 
  1009. % use outside of TeXsis; simply replace the \letter command with the
  1010. % proper initialization followed by \LetterFormat and use \letterhead or
  1011. % \phoneletterhead.
  1012. %
  1013. %       \letter                         % initialize TeXsis and letter format
  1014. %       \letterhead{xxxx}               % xxxx is BNL extension
  1015. %       \address                        % get address in box
  1016. %               <name and address>      % line endings are respected
  1017. %       \body                           % begin text of letter
  1018. %       Dear whoever,
  1019. %
  1020. %               <text of your letter>
  1021. %
  1022. %       \closing                        % begin closing
  1023. %       Sincerely yours,                % or whatever, indented
  1024. %       Your Name                       % indented, followed by a space
  1025. %       Your Title                      % optional additional line(s)
  1026. %       \annotations                    % initials, enclosures, etc.
  1027. %               <text>                  % can also use \ps
  1028. %       \cc <name>                      % carbon copies
  1029. %           <name>                      % to more than one person
  1030. %       \bye                            % end of letter
  1031. %
  1032. % -----------------------------------------------------------------------
  1033. \message{Letter Format.}
  1034.  
  1035. %       dimensions, counters, and boxes: \hdimphone and \vdimphone are the 
  1036. % positions relative to the page edge -- not the print boundaries -- of the 
  1037. % telephone number in \phoneletterhead. They are correct here for BNL 
  1038. % stationary. Similarly, \hdimdate and \vdimdate are the positions for the
  1039. % date. These can be changed in TXSsite.tex to fit other stationary with 
  1040. % a generally similar format.   
  1041.  
  1042. \newdimen\headlineoffset        \headlineoffset = 0.25 truein
  1043. \newdimen\longindent            \longindent = 3.5 truein
  1044.  
  1045. \newdimen\hdimphone             \hdimphone = 6.2truein
  1046. \newdimen\vdimphone             \vdimphone = 1.9truein
  1047. \newdimen\hdimdate              \hdimdate = 5.5truein
  1048. \newdimen\vdimdate              \vdimdate = 2.15truein
  1049.  
  1050. \newskip\bigletterskip
  1051. \bigletterskip=1.0truein plus 1.0truein minus .75truein
  1052.  
  1053. \newbox\theaddress                      % to collect the address in
  1054.  
  1055. % -----------------------------------------------------------------------
  1056. %       Initialization. \LetterFormat is called by \letter but can also be
  1057. % called separately.
  1058.  
  1059. \def\LetterFormat{%                     %
  1060.    \nopagenumbers                       % kill page numbers
  1061.    \singlespaced                        % letters always begin \singlespaced
  1062.    \quoteon                             % automatic open/close quotes
  1063.    \longindent=3.5truein                % indentation for signature
  1064.    \headline={\LetterHeadline}%         % running headline has addressee
  1065.    \let\endmode=\par                    % start with this for \endmode
  1066.    \let\body=\letterbody                % \body begins text of letter
  1067.    \let\text=\letterbody                % \text is synonym
  1068.    \let\date=\letterdate                % \date puts date on top of letter
  1069.    \let\cc=\ccletr                      % carbon copy for letter
  1070.    \def\addressee{\relax}%              % start with no addressee
  1071. }
  1072.  
  1073. \def\Letter{%   document format for letters
  1074.    \ContentsSwitchfalse                         % no table of contents
  1075.    \refswitchfalse                              % no reference list
  1076.    \auxswitchfalse                              % no forward references
  1077.    \texsis                                      % initialize
  1078.    \singlespaced                                % single space default
  1079.    \LetterFormat}                               % Setup using \LetterFormat
  1080.  
  1081. \def\letter{\Letter}                            % synonym
  1082.  
  1083.  
  1084. \def\LetterHeadline{%                   % headline for extra pages
  1085.    \ifnum\pageno>1                      % headline placement and spacing
  1086.       \ifx\addressee\relax\relax        % no addressee, so
  1087.          {\tenrm\today\hfil Page \folio}% date and page
  1088.       \else                             % otherwise addressee, date, page
  1089.          {\tenrm\addressee\hfil\today\hfil Page \folio}%
  1090.       \fi                       
  1091.    \else\hfil\fi}                       % but nothing on page 1
  1092.                                 
  1093. %       \LetterWidth adjusts the width of the letter to allow long or
  1094. % short letters to be fit nicely on the page.
  1095.                                 
  1096. \def\LetterWidth#1{%                    % set width for letter
  1097.    \hsize=#1                            % set \hsize
  1098.    \dimen0=#1                           % calculate horizontal shift ...
  1099.    \advance \dimen0 by -6.5truein       % subtract default
  1100.    \divide \dimen0 by 2                 % 
  1101.    \advance \hoffset by -\dimen0        % center letter
  1102.    \advance \longindent by \dimen0      % adjust closing
  1103. }
  1104.  
  1105. \def\letterwidth{\LetterWidth}          % synonym
  1106.  
  1107.  
  1108. \def\endletter{%\obsolete\endletter\bye  %
  1109.     \endmode\vfil\eject\end} % to end a letter  
  1110.  
  1111. %-----------------------------------------------------------------------
  1112. %       \today gives today's date. This is redundant in TeXsis but is 
  1113. % included for completeness.
  1114.  
  1115. \def\today{\number\day\ 
  1116.     \ifcase\month\or 
  1117.     January\or February\or March\or April\or May\or June\or
  1118.     July\or August\or September\or October\or November\or December\fi\
  1119.     \number\year}
  1120.  
  1121. %-----------------------------------------------------------------------
  1122. %   \beginlinemode ends the previous mode and starts a mode where 
  1123. % \obeylines is in effect.  
  1124.  
  1125. \def\beginlinemode{\endmode\begingroup\parindent=0pt\parskip=0pt
  1126.      \obeylines\def\endmode{\par\endgroup}}
  1127.  
  1128.  
  1129. %  \beginparmode ends the previous mode and starts a mode where lines 
  1130. % are concatenated.
  1131.  
  1132. \def\beginparmode{\endmode\begingroup\parskip=\medskipamount 
  1133.    \def\endmode{\par\endgroup}}
  1134.  
  1135. %-----------------------------------------------------------------------
  1136. %       \address gets the address in a box, as well as printing it at the 
  1137. % top of the letter.  Line endings are respected here. The first line after 
  1138. % \address is the \addressee, which is used in the heading on all pages 
  1139. % after the first.
  1140.  
  1141. \def\address{%                  %
  1142.    \vskip\bigletterskip         % skip down for address
  1143.    \beginlinemode               % look for line ends in address 
  1144.    \getaddress}                 % and get address
  1145.  
  1146. {\obeylines\gdef\getaddress #1
  1147.    #2
  1148.    {#1\gdef\addressee{#2}%
  1149.       \global\setbox\theaddress=\vbox\bgroup
  1150. %%%NOT \longindent      \hsize=\longindent 
  1151.       \parskip=0pt
  1152.       #2
  1153.    \def\endmode{\egroup\endgroup \copy\theaddress}
  1154. }% end \gdef
  1155. }% end \obeylines for 
  1156.  
  1157. %-----------------------------------------------------------------------
  1158. %   Use \body before typing the body of the letter. This is defined
  1159. % to be \letterbody. \text is a synonym.
  1160.  
  1161. \def\letterbody{\bigskip                % skip some
  1162.     \beginparmode                       % paragraph mode
  1163.     \raggedright\tolerance=2500         % letters are not justified
  1164.     \noindent}                          % don't indent salutation
  1165.  
  1166. %    Use \closing at the end of the letter.  It automatically puts a 
  1167. % space for a signature between the 1st and 2nd lines after \closing.
  1168.  
  1169. \def\closing{\beginlinemode\getclosing}
  1170.  
  1171. {\obeylines\gdef\getclosing #1
  1172.    #2
  1173.    {#1\nobreak\bigskip\nobreak\bigskip \leftskip=\longindent #2
  1174.    \nobreak\vskip .5truein
  1175.    \def
  1176.    {\endgraf\nobreak}}}
  1177.  
  1178.  
  1179. %   \annotations and \ps are used at the end of the letter. \annotations
  1180. % respects lines while \ps gives paragraph mode.
  1181.     
  1182. \def\annotations{\beginlinemode\nobreak\bigskip         % skip down some
  1183.    \def\par{\endgraf\nobreak}\obeylines\par}
  1184.     
  1185. \def\ps{\beginparmode\nobreak\bigskip                   % skip down some
  1186.   \interlinepenalty 5000\def\par{\endgraf\penalty 5000}}
  1187.     
  1188.  
  1189. % \ccletr does \cc for a letter.
  1190.     
  1191. \def\ccletr{\beginlinemode%
  1192.    \nobreak \bigskip%                   % skip down
  1193.    \def\par{\endgraf\nobreak}%          % as for \annotations
  1194.    \obeylines\par%                      % obey lines
  1195.    \ccitem{cc:\ }}                      % print cc:
  1196.     
  1197. \def\cc{\ccletr}    
  1198. \def\CC{\cc}    
  1199.     
  1200. \def\Encl{\beginlinemode%
  1201.    \nobreak \bigskip%                   % skip down
  1202.    \def\par{\endgraf\nobreak}%          % as for \annotations
  1203.    \obeylines\par%                      % obey lines
  1204.    \ccitem{Encl:\ }}                    % print cc:
  1205. \def\encl{\Encl}                        % synonym
  1206.     
  1207. %   \ccitem does the work for \cc and \Encl
  1208. \def\ccitem#1{\setbox0\hbox{#1\quad}%   % box0 = argument
  1209.     \parindent=\wd0                     % get its width
  1210.     \hang                               % hanging indentation
  1211.     \rlap{\copy0}%                      % and write it
  1212.     \nobreak%                           % forbid break
  1213.     \vskip-\baselineskip\relax}         % kill the skip
  1214.  
  1215. \def\newpage{\vfill\eject}
  1216.     
  1217. %-----------------------------------------------------------------------
  1218. %       \letterhead just spaces down and puts the date at the top of the 
  1219. % page. \phoneletterhead puts in a phone number and the date at positions
  1220. % given by \hdimphone, \vdimphone and \hdimdate, \vdimdate relative to
  1221. % the true page boundaries.
  1222.  
  1223. \def\letterhead#1{%             %
  1224.    \vbox{\vskip 0.5 truein}%    % skip down for the date
  1225.    \line{\hfil\today}%          % right justify date
  1226.    \vskip\bigletterskip}%       % space down to the address
  1227.               
  1228. \def\phoneletterhead#1{%                        % #1 is phone number
  1229.    \vbox{\vskip-\voffset\vskip-\headlineoffset  % skip down to position
  1230.       \vskip\vdimphone}                         % of phone number
  1231.    \hbox{\hskip-\hoffset\hskip\hdimphone #1}%   % skip over to number
  1232.    \vskip-\vdimphone\vskip\vdimdate             % skip down to date
  1233.    \hbox{\hskip-\hoffset\hskip\hdimdate \today} % date 
  1234.    }                                            %
  1235.               
  1236. \def\letterdate{%               % \letterdate just puts date on letters
  1237.    \vbox{\vskip 0.5 truein}%    % skip down for the date
  1238.    \line{\hfil\today}%          % right justify date
  1239.    \bigskip}                    % space down to the address
  1240.  
  1241. % >>> EOF TXSletr.tex <<<
  1242.  
  1243. $! =========== TXSprns.tex ============
  1244. $ copy sys$input TXSprns.tex
  1245. % file: TXSprns.tex                              TeXsis version 2.15  
  1246. % $Revision: 15.1 $  :  $Date: 92/05/31 21:06:14 $  :  $Author: myers $
  1247. %======================================================================*
  1248.  
  1249. % Automatic parenthesis sizing:
  1250. %
  1251. %      \autoparens provides automatic sizing of () and [] in displayed 
  1252. % equations by making these active characters and inserting \left and 
  1253. % \right as needed.  Automatic sizing is NOT provided for other delimiters 
  1254. % such as \{ \} -- these must be handled as in Plain TeX. This feature is
  1255. % turned on and off by:
  1256. %       \autoparens    ==>   automatic sizing on
  1257. %       \offparens     ==>   automatic sizing off
  1258. % The default is \autoparens once you say \texsis.
  1259. %
  1260. %       While \onparens generally simplifies the typing of equations,
  1261. % it can cause problems which might not be expected. Since \autoparens uses 
  1262. % \left ... \right internally, parentheses must be properly balanced.
  1263. % In particular, splitting parentheses by breaking a long equation with
  1264. % an \EQNalign will produce an error.  Most problems can be solved by using
  1265. % control sequences for the plain characters:
  1266. %       \lparen   ==>   (
  1267. %       \rparen   ==>   )
  1268. %       \lbrack   ==>   [
  1269. %       \rbrack   ==>   ]
  1270. %
  1271. % You can still use \left and \right in equations with \autoparens,
  1272. % but they are implicitly inserted if you fortet them.
  1273. %
  1274. % In older versions of TeXsis we used \onparens to provide automatic
  1275. % parenthesis sizing everywhere.  This caused some unexpected problems,
  1276. % so we have restricted \autoparens to displayed equations, where it
  1277. % is most usefful. \onparens is still around, but we don't encourage
  1278. % its use anymore.  Still, we did fix this a little bit so that parens
  1279. % and brackets are only active in math mode.
  1280. %
  1281. % Dependencies: \emsg and \@errmark come from TXSmacs.TeX
  1282. %======================================================================*
  1283. \message{Auto-sizing of Parentheses.}
  1284. \catcode`@=11                   % make sure @ is a letter here
  1285.  
  1286. % ---------- first save usual definitions of () and [] and \left and \right
  1287.  
  1288. \ifx\@left\undefined            % if \@left undefined then do it
  1289.  \let\@left=\left       \let\@right=\right
  1290.  \let\lparen=(          \let\rparen=)
  1291.  \let\lbrack=[          \let\rbrack=]
  1292.  \let\@vert=\vert
  1293. \fi                             % else its already done
  1294.  
  1295. % ---------- Now make definition of () and [] for use when they are active
  1296.  
  1297. \begingroup                     %=== make these active catcodes local ===
  1298. \catcode`\(=\active \catcode`\)=\active
  1299. \catcode`\[=\active \catcode`\]=\active
  1300.  
  1301. \gdef({\relax                           % \relax  just in case in an alignment
  1302.    \ifmmode \push@delim{P}%             % if math mode record opening delim
  1303.     \@left\lparen                       %   and do \left (
  1304.    \else\lparen                         % else, just a left paren
  1305.    \fi}
  1306.  
  1307. \global\let\@lparen=(                   % another name for it
  1308.  
  1309. \gdef){\relax                           % \relax in case in an alignment
  1310.    \ifmmode\@right\rparen               % if math mode then \right )
  1311.      \pop@delim\@delim                  % get last opening delimiter
  1312.      \if P\@delim \relax \else          % check for miss-matched delimiters 
  1313.        \if B\@delim\emsg{> Expecting \string] but got \string).}%
  1314.                    \@errmark{PAREN}%
  1315.        \else\emsg{> Unmatched \string).}\@errmark{PAREN}%
  1316.      \fi\fi
  1317.    \else\rparen                         % else just a ")" 
  1318.    \fi}
  1319.  
  1320. \gdef[{\relax                           % just in case in alignment
  1321.    \ifmmode \push@delim{B}%             % if math mode record opening delim
  1322.      \@left\lbrack                      %   and do \left [
  1323.    \else\lbrack                         % else, just a left bracket
  1324.    \fi}
  1325. \global\let\@lbrack=[                   % another name for it
  1326.  
  1327. \gdef]{\relax                           % \relax in case in an alignment
  1328.    \ifmmode\@right\rbrack               % if math mode then \right ]
  1329.      \pop@delim\@delim                  % get last opening delimeter
  1330.      \if B\@delim \relax \else          % check for mis-matched delimeters
  1331.        \if P\@delim\emsg{> Expecting \string) but got \string].}%
  1332.                    \@errmark{BRACK}%
  1333.        \else\emsg{> Unmatched \string].}\@errmark{BRACK}%
  1334.      \fi\fi
  1335.    \else\rbrack                         % else just a "]"
  1336.    \fi}
  1337.  
  1338. % Make \left(, \right), \left[ and \right] work properly even if easyparens 
  1339. % is on.  To use these \let\left=\EZYleft and \let\right=\EZYright
  1340.  
  1341. \gdef\EZYleft{\futurelet\nexttok\@EZYleft}      % \nexttok is next tok on list
  1342. \gdef\@EZYleft#1{%                              %  look for ( or [
  1343.    \ifx\nexttok(  \let\nexttok=\lparen          % replace ( with \lparen
  1344.    \else
  1345.    \ifx\nexttok[  \let\nexttok=\lbrack          % replace [ with \lbrack
  1346.    \fi\fi
  1347.    \@left\nexttok}                              %  do usual \left to \nexttok
  1348.  
  1349. \gdef\EZYright{\futurelet\nexttok\@EZYright}    % \nexttok is next tok on list
  1350. \gdef\@EZYright#1{%                             %  look for ) or ]
  1351.    \ifx\nexttok)  \let\nexttok=\rparen          % replace ) with \rparen
  1352.    \else
  1353.    \ifx\nexttok]  \let\nexttok=\rbrack          % replace ] with \rbrack
  1354.    \fi\fi
  1355.    \@right\nexttok}                             % do usual \right to \nexttok
  1356.  
  1357. \endgroup                       %=== close () and [] as active characters ===
  1358.  
  1359. %--------------------------------*
  1360. % macros to push and pop delimeter marker on the stack called \@delimlist
  1361.  
  1362. \toksdef\@CAR=0  \toksdef\@CDR=2                % for push and pop delimeters
  1363.  
  1364. \def\push@delim#1{\@CAR={{#1}}%                 % add #1
  1365.      \@CDR=\XA{\@delimlist}%                    %  to front
  1366.     \edef\@delimlist{\the\@CAR\the\@CDR}}%      % of \@delimlist
  1367.  
  1368. \def\pop@delim#1{\XA\pop@delimlist\@delimlist\endlist#1}% pop from list to #1
  1369.  
  1370. \def\pop@delimlist#1#2\endlist#3{\def\@delimlist{#2}\def#3{#1}}    
  1371.  
  1372. \def\@delimlist{}                               % start with null list
  1373.  
  1374. %==================================================*
  1375. % Turning EZparens on and off:
  1376.  
  1377. \newif\ifEZparens   \EZparensfalse
  1378.  
  1379. \def\autoparens{\EZparenstrue                   % turn on the switch
  1380.    \everydisplay={\@onParens}%                  % in displayed equations
  1381.    }
  1382.  
  1383. \def\@onParens{% turn on paren-matching definitions and active characters
  1384.    \ifEZparens                                  % only if switched on
  1385.     \def\@delimlist{}%                          % reset delim list to null
  1386.     \let\left=\EZYleft                          % get \left([ correct
  1387.     \let\right=\EZYright                        % similarly for \right's
  1388.     \catcode`\(=\active \catcode`\)=\active     % make ( and )
  1389.     \catcode`\[=\active \catcode`\]=\active     %  and [ and ] active
  1390.    \fi}
  1391.  
  1392. \def\offparens{% turn off automatic paren sizing
  1393.    \EZparensfalse\@offParens                    % switch and active chars off
  1394.    \everymath={}\everydisplay={}}               % clear \every...
  1395.  
  1396. \def\@offParens{%
  1397.    \let\left=\@left                             % restore \left and \right
  1398.    \let\right=\@right                           %   to original definitions
  1399.    \catcode`(=12 \catcode`)=12                  % make ( and ) 
  1400.    \catcode`[=12 \catcode`]=12                  %  and [ and ] "other"
  1401.    }
  1402. \offparens                                      % default until \texsis
  1403.  
  1404. %======================================================================*
  1405. % \onparens (backward compatability, but to be removed soon)
  1406. %
  1407. % \onparens does automatic parenthesis sizing in both in-line
  1408. % and displayed equations.  In-line equations are a bit difficult.
  1409. % When TeX gets a $ it has to look ahead at the next character to
  1410. % see if it is another $.  If it was not then it puts it back in
  1411. % the input stream, but the character code is already set -- if it
  1412. % was ( or [ then you can't make these \catcode=\active.  Thus in
  1413. % math mode (but not displayed equations) we have to look ahead
  1414. % at the token and take corrective action. 
  1415. %
  1416. % Unfortunately if the first token is complex (i.e. enclosed in { }'s)
  1417. % then the lookahead ends up removing the { }'s, which can cause
  1418. % errors.  Put \relax at the begining of such equations until I find
  1419. % a fix.  Or use \autoparens instead.
  1420.  
  1421. \def\onparens{% OLD version of \autoparens for both math and displayed eqns
  1422.    \EZparenstrue                                % turn on the switch
  1423.    \everymath={\@onMathParens}%                 % in math mode
  1424.    \everydisplay={\@onParens}%                  % in displayed equations
  1425.    }
  1426. \def\easyparenson{\onparens}                    % OLD synonym
  1427.  
  1428. \def\@onMathParens#1{% check lookahead for a missed ( or [
  1429.    \@SetRemainder#1\endlist                     % to put back lookahead
  1430.    \ifx#1\lparen\let\@remainder=\@lparen\fi     % lookahead for missed (
  1431.    \ifx#1\lbrack\let\@remainder=\@lbrack\fi     % and get rid of [ found
  1432.    \@onParens                                   % make ), (, ], [ active
  1433.    \@remainder}                                 % now do what followed
  1434.  
  1435. % \@SetRemainder looks at lookahead from \@onMathParens.  If there
  1436. % is more than one token (#2 not empty) then the lookahead was a complex
  1437. % token so it should be enclosed in { }'s
  1438.  
  1439. \def\@SetRemainder#1#2\endlist{%
  1440.    \ifx @#2@ \def\@remainder{#1}%
  1441.    \else  \def\@remainder{{#1#2}}%
  1442.    \fi}
  1443.  
  1444. \def\easyparensoff{\offparens}                  % synonym for \offparens
  1445.  
  1446. % -- Redefine some PLAIN macros so that they will work with \easyparenson
  1447.  
  1448. \def\pmatrix#1{\@left\lparen\matrix{#1}\@right\rparen}
  1449.  
  1450. \def\bordermatrix#1{\begingroup \m@th
  1451.   \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
  1452.     \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
  1453.       &&\quad\hfil$##$\hfil\crcr
  1454.       \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
  1455.       #1\crcr\omit\strut\cr}}%
  1456.   \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
  1457.   \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
  1458.   \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\@left\lparen\kern-\wd\@ne
  1459.     \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
  1460.     \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right\rparen$}%
  1461.   \;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
  1462.  
  1463. % Partitioned matrix
  1464. %  usage:
  1465. %          \partitionmatrix{a&&b&&c\cr\tabelrule d&e&f\cr}
  1466. % (leave off the last \cr or you'll get an extre line at the bottom)
  1467. % (The \mathstrut tries to make two n-row partition matrices have the
  1468. % same height and depth unless some row is unusually large.)
  1469.  
  1470. \def\partitionmatrix#1{\,\vcenter{\offinterlineskip\m@th
  1471.    \def\tablerule{\noalign{\hrule}}
  1472.    \halign{\hfil\loosebox{$\mathstrut ##$}\hfil&&\quad\vrule##\quad&%
  1473.       \hfil\loosebox{$##$}\hfil\crcr
  1474.    #1\crcr}}\,}
  1475.  
  1476. % >>> EOF TXSprns.tex <<<
  1477.  
  1478. $! =========== TXSsects.doc ============
  1479. $ copy sys$input TXSsects.doc
  1480. % TXSsects.doc                                 TeXsis version 2.15  
  1481. % $Revision: 15.11 $  :  $Date: 92/07/16 11:53:04 $  :  $Author: paige $
  1482. %=======================================================================*
  1483. % TeXsis Manual - CHAPTERS AND SECTIONS : This file is a part of TeXsis
  1484. % (C) Copyright 1989, 1992 by Eric Myers and Frank E. Paige
  1485. %======================================================================*
  1486. \ifx\undefined\bs \texsis\input TXSdocM.doc\draft\fi
  1487.  
  1488.  
  1489.  
  1490. \section{Chapters and Sections                  \label{sect.sects}}
  1491.  
  1492. Long documents are typically divided into chapters, sections,
  1493. subsections, and/or appendices.  The following macros can be used to
  1494. create and automatically number such divisions of a document:
  1495. \singlelinetrue                         % make label overhang
  1496. \description{\hskip 3cm}\clump
  1497.  
  1498. \itm{\CS{chapter}\arg{title}\quad} 
  1499. Begins a chapter with \meta{title} printed in |\Tbf|
  1500. type on a new page.
  1501.  
  1502. \itm{\CS{section}\arg{title}\quad} 
  1503. Begins a section with the \meta{title} printed in |\tbf|
  1504. type.  This does {\it not} begin on a new page (although you 
  1505. certainly can start a section on a new page by saying
  1506. |\vfill\supereject| first.)
  1507.  
  1508. \itm{\CS{subsection}\arg{title}\quad} 
  1509. Begins a subsection with the \meta{title} printed in |\bf|
  1510. type.
  1511.  
  1512. \itm{\CS{subsubsection}\arg{title}\quad} 
  1513. Begins a sub-subsection entitled \meta{title}.  This is a lower
  1514. level than even a subsection and should only be used when truly appropriate.
  1515.  
  1516. \itm{\CS{Appendix}\arg{label}\arg{title}} 
  1517. Begins a chapter-like appendix labeled by the letter \meta{label}
  1518. (generally A, B, C, \dots or I, II, III, \dots).  The \meta{title}
  1519. is printed in |\Tbf| type at the top of a new page.
  1520.  
  1521. \itm{\CS{appendix}\arg{label}\arg{title}} 
  1522. Begins a section-like appendix labeled by the letter \meta{label}
  1523. (generally A, B, C, \dots or I, II, III, \dots).  The \meta{title}
  1524. is printed in |\tbf| type.
  1525.  
  1526. \itm{\CS{nosechead}\arg{title}} 
  1527. The \meta{title} is typeset like a subsection headline, but without a
  1528. subsection number.  This is suitable for acknowledgments, lists of
  1529. references and such.
  1530.  
  1531. \enddescription
  1532. The title appears at the top of the section or subsection, left
  1533. justified in the appropriate typestyle and with an appropriate amount of
  1534. vertical spacing below.  In general |\chapter| is appropriate mainly for
  1535. books or theses; the manual you are reading now uses only |\section| and
  1536. |\subsection| divisions.
  1537.  
  1538.    By default chapter, section, and subsection numbers are printed with
  1539. the titles, and the chapter and section numbers are also attached to 
  1540. equation, figure and table 
  1541. numbers in the form ``$cc.ss.nn$'', where $cc$ is the chapter
  1542. number, $ss$ the section number, and $nn$ the equation number.  The
  1543. inclusion of the chapter and section numbers can be turned on or off with
  1544. the commands
  1545. \description{~showchaptIDfalse\qquad} 
  1546. \itm{\CS{showchaptIDtrue}} Display chapter numbers.
  1547. \itm{\CS{showchaptIDfalse}} Do not display chapter numbers.
  1548. \itm{\CS{showsectIDtrue}} Display section numbers.
  1549. \itm{\CS{showsectIDfalse}} Do not display section numbers.
  1550. \enddescription
  1551.  
  1552.         \CS{Appendix} and \CS{appendix} give, respectively, chapter-like
  1553. and section-like appendices. The title is printed in the same format as
  1554. a chapter or section, and the chapter or section number is replaced by a
  1555. letter given as the first argument.  This letter is attached to the
  1556. equation numbers if \CS{showchaptIDtrue} or \CS{showsectIDtrue} is used.
  1557. You can omit the letter by using an empty first argument, as in
  1558. \TeXexample
  1559. \appendix{}{Leading logarithm approximation}
  1560. |endTeXexample
  1561. \noindent
  1562. in which case the result is the same as setting
  1563. \CS{showchaptIDfalse} or \CS{showsectIDfalse}.
  1564.  
  1565.         A skip \CS{sectionskip} is used before the title of any
  1566. section-like division, that is, a |\section| or an |\appendix|; a skip
  1567. \CS{subsectionskip} is used for any lower-level divison, that is, a
  1568. |\subsection|, a |\subsubsection|, or a |\nosechead|. Of course these
  1569. are all removed by \TeX\ if the section starts on a new page.
  1570. Furthermore, any of these divisions will start on a new page if less
  1571. than a minimum length \CS{sectionminspace} remains on the current
  1572. page. The defaults for these parameters are
  1573. \TeXexample
  1574. \sectionskip=2cm plus8pt minus8pt
  1575. \subsectionskip=1cm plus4pt minus4pt
  1576. \sectionminspace=0.25\vsize
  1577. |endTeXexample
  1578. but they can be changed to any legal \TeX\ skip or dimension either
  1579. throughout the document or in a local group. For example, you could
  1580. use
  1581. \TeXexample
  1582. \begingroup
  1583. \subsectionskip=\sectionskip
  1584. \fourteenpoint
  1585. \nosechead{<title>}
  1586. \endgroup
  1587. |endTeXexample
  1588. to make a |\nosechead| which looks like a |\section|.
  1589.  
  1590. \bigskip
  1591.  
  1592.         Ordinarily the order of appearance of the sections of a document
  1593. are not changed, so there is no automatic mechanism for labeling the
  1594. sections.  Any of the divisions described above can be labeled by
  1595. inserting \cs{label}\arg{label} into the title text.  The \meta{label}
  1596. should have the form \meta{type.name}, where \meta{type} is |chap|,
  1597. |sect|, etc., to avoid possible conflicts with other kinds of labels.
  1598. The corresponding numbers can then be referred to with
  1599. |\use{|\meta{type.name}|}|.
  1600.  
  1601.         If the title of a chapter or section is too long a break in the
  1602. line can be inserted with \cs{n}.  This will also break the line in the
  1603. title when it appears in the table of contents.  If running headlines
  1604. are being used (see Section~\use{sect.headline}) then only the first
  1605. part of the title, up to the \cs{n}, will be used for the running
  1606. headline. You can always set the headline by hand with |\setHeadline|;
  1607. see Section~\use{sect.headline}.
  1608.  
  1609.         You can customize the behavior of the section-making macros by
  1610. adding your own definitions for the macros
  1611. \index{customization!chapters and sections}%
  1612. \example
  1613. \CS{everychapter}, \CS{everysection}, \CS{everysubsection},
  1614. \CS{everysubsubsection},
  1615. \endexample
  1616. which are called immediately before making the corresponding
  1617. division of the document, or for
  1618. \example
  1619. |\afterchapter|, |\aftersection|, |\aftersubsection|,
  1620. |\aftersubsubsection|,
  1621. \endexample
  1622. which are called immediately afterwards.  By default all of these macros
  1623. do nothing.  As an example, if you wanted every section to begin on a
  1624. new page you could define:
  1625. \TeXexample
  1626. \def\everysection{\vfill\supereject}
  1627. |endTeXexample
  1628. \noindent
  1629. For more specialized customization one can look in the source file
  1630. |TXSsects.tex| for the definitions of \cs{section} and \cs{chapter}
  1631. and modify these accordingly.
  1632.  
  1633.  
  1634. %==================================================*
  1635. \pagecheck{0.30\vsize}                          % new page if this one full
  1636. \subsection{Table of Contents}
  1637.  
  1638. The section-making macros just described automatically make an entry in
  1639. a {table of contents} for the document being prepared.  The title of
  1640. the chapter or section and the page number are stored in a table of
  1641. contents file (which ends with the extension ``|.toc|'') until needed.
  1642. The \idx{table of contents} is created simply by saying \CS{Contents}.  If
  1643. your document is divided into chapters, like a book, the table of
  1644. contents should appear on a page with a Roman numeral page number (which
  1645. is obtained by setting \cs{pageno} to a negative value).  For example:
  1646. \TeXexample
  1647. \book                     % initialize
  1648. \input ...                % input chapter or section files
  1649. ...
  1650. \vfill\supereject         % eject last page, including figures
  1651. \nosechead{Contents}      % label TOC without section #
  1652. \pageno=-3                % print on pages iii, iv, ...
  1653. \Contents                 % generate table of contents
  1654. |endTeXexample
  1655. \noindent
  1656. The table of contents should be printed at the {\it end} of the
  1657. document so that all the page numbers are correct.  You then
  1658. simply move these pages to the front of the document.
  1659.  
  1660.   Nothing is written to the table of contents file unless
  1661. \CS{ContentsSwitchtrue} is set.  The default for most documents
  1662. is \CS{ContentsSwitchfalse}, since one usually does not want a table
  1663. of contents for a short paper or a memo or a letter.  The exceptions
  1664. are \cs{book} and \cs{thesis}, which automatically set \CS{ContentsSwitchtrue}.
  1665. In any case, if you want a table of contents you can
  1666. explicitly state \CS{ContentsSwitchtrue}.
  1667.  
  1668.         While an entry in the table of contents is created by \cs{chapter}
  1669. or \cs{section}, no entry is made for \cs{nosechead}.  In this case, or in
  1670. any case, you can insert an entry into the table of contents ``by hand''
  1671. by saying
  1672. \example
  1673. \CS{addTOC}\arg{level}\arg{title}\arg{page}
  1674. \endexample
  1675. where \meta{level} is the level of division for the entry
  1676. being made, with 0 for chapters, 1 for sections and 2 for subsections.
  1677. This controls how much vertical space is put around the table of
  1678. contents entry and how much the entry is indented.
  1679. %
  1680. The \meta{title} is the text of the title as it should appear in the table
  1681. of contents.  Text which is too long for one line will be split over
  1682. several lines, but you can force a line break where you want one with
  1683. \cs{n}. The \meta{page} is the page number for the entry you are making.
  1684. Generally you'll use \cs{folio} here to just use the current page number,
  1685. whatever that may be.  Thus to make a section level
  1686. entry in the table of contents having the title ``Acknowledgments''
  1687. you would simply say
  1688. \TeXexample
  1689. \addTOC{1}{Acknowledgments}{\folio}
  1690. |endTeXexample
  1691.  
  1692.  
  1693.         Entries made in the table of contents by \cs{chapter}, \cs{section},
  1694. etc. will optionally begin with the chapter or section number, depending
  1695. upon whether \cs{showchaptIDtrue} and \cs{showsectIDtrue} are selected.  The
  1696. decision whether or not to show the chapter or section number is made
  1697. when the table of contents is created by \CS{Contents}, not when the
  1698. \cs{chapter} or \cs{section} is begun.  Thus it is possible to have the
  1699. section numbers showing at the beginning of the section, but to then have
  1700. no section numbers in the table of contents by saying \cs{showsectIDfalse}
  1701. immediately before saying \CS{Contents}.
  1702.  
  1703. \bigskip
  1704.  
  1705.         What if you want the table of contents to appear in the table of
  1706. contents itself!?  Naturally it should appear first (even though it is
  1707. printed at the end of the document).  You can use the tagging mechanism
  1708. described in Section~\use{sect.labels} to make a ``forward reference''
  1709. to the page number.  At the beginning of the document you can create the
  1710. table of contents entry by saying
  1711. \TeXexample
  1712. \addTOC{0}{Table of Contents}{\noexpand\use{Pg.tabcontents}}
  1713. |endTeXexample 
  1714. \noindent
  1715. The |\noexpand| prevents the \cs{use} from being expanded
  1716. until later, after the table of contents file is read in.  Later, when
  1717. you actually print the table of contents you would first tag the page
  1718. number, then invoke \CS{Contents}, like so:
  1719. \TeXexample
  1720. \nosechead{Table of Contents}
  1721. \tag{Pg.tabcontents}{\folio}
  1722. \Contents
  1723. |endTeXexample 
  1724. \noindent
  1725. For more information about \cs{tag} and \cs{use} see
  1726. Section~\use{sect.labels}.\relax
  1727.  
  1728. %>>> EOF TXSsects.doc <<<
  1729. $! =========== TXStags.tex ============
  1730. $ copy sys$input TXStags.tex
  1731. %% TXStags.tex                                  TeXsis version 2.15  
  1732. %  $Revision: 15.4 $  :  $Date: 92/06/30 11:04:31 $  :  $Author: myers $  
  1733. %======================================================================*
  1734. % TAGS - create lables for things       - This file is a part of TeXsis
  1735. %                       (C) copyright 1991 by Eric Myers and Frank Paige.
  1736. %
  1737. \message{Labels and tags.}
  1738.  
  1739. % I/O and switches:                     
  1740.  
  1741. \newread\auxfilein                              % input for jobname.aux file
  1742. \newwrite\auxfileout                            % output for jobname.aux file
  1743. \newif\ifauxswitch      \auxswitchtrue          % enable writing to .aux file?
  1744.  
  1745. \let\XA=\expandafter    \let\NX=\noexpand       % shorthand 
  1746. \catcode`"=12                                   % make sure " is not active
  1747. \catcode`@=11                                   % @ is a letter  here
  1748.  
  1749. \newcount\@BadTags   \@BadTags= 0               % count undefined tags
  1750.  
  1751. %==================================================*
  1752. % INITIALIZATION. \auxinit is used to open jobname.aux for output to
  1753. % save these definitions for the next run.  It opens the file and then
  1754. % disables itself so it doesn't try to open the file again.
  1755.  
  1756. \def\auxinit{%  once only initialization of auxilliary file
  1757.   \ifauxswitch                                  % if auxswitch true:
  1758.     \immediate\openout\auxfileout=\jobname.aux  % open new .aux file for output
  1759.   \else                                         % if auxswitch false: 
  1760.     \gdef\auxout##1##2{}%               % turn off \tag 's writing to .aux file
  1761.   \fi
  1762.   \gdef\auxinit{\relax}}                        % disable \auxinit
  1763.  
  1764. % -- \auxout{csname}{value} writes the definition to the \jobname.aux file
  1765.  
  1766. \def\auxout#1#2{\auxinit                        % initialize .aux file 
  1767.    \immediate\write\auxfileout{%                % write to file
  1768.    \NX\expandafter\NX\gdef                      % \expandafter\gdef...
  1769.    \NX\csname #1\NX\endcsname{#2}}%             %    \csname{data}
  1770.    }
  1771.  
  1772. %  \ReadAUX looks for a file called jobname.aux  and if it exists reads
  1773. %  it in.  This file should have tag and label definitions from a
  1774. %  previous run.   
  1775.  
  1776. \def\ReadAUX{%  reads in the auxilliary file from a previous run
  1777.    \openin\auxfilein=\jobname.aux               % open old .aux file for input
  1778.    \ifeof\auxfilein\closein\auxfilein           % if EOF it's empty.
  1779.    \else\closein\auxfilein                      % else close it and... 
  1780.      \begingroup                                % fix up special characters...
  1781.       \unSpecial                                %
  1782.       \input\jobname.aux \relax                 % ...and read in the file
  1783.      \endgroup                                  % back to special characters
  1784.    \fi}                                         % else ignore it
  1785.  
  1786. %==================================================*
  1787. % TAGGING.  Save information by labeling it.
  1788. %
  1789. %  \tag{name}{<value>} defines the control sequence \@name@  to be
  1790. %  <value>, and writes the definition to the file jobname.aux so 
  1791. %  jobs that follow can resolve forward references.  (The @'s
  1792. %  in \@name@ are a part of the name, and are included so that
  1793. %  the user does not define a tag with the same name as a control 
  1794. %  sequence.  The backslash is actually not a part of the name.)
  1795. %  We use \csname ... \endcsname so that label names can include 
  1796. %  digits, numbers and other characters.  It is not a good idea to 
  1797. %  use &,~,\,| or other special characters.   Spaces may be included 
  1798. %  in a name, but they are ignored.
  1799.  
  1800. \def\tag{%              \tag{name}{value} defines \@name@ to be "value"
  1801.    \begingroup\unSpecial                % to turn off special chars
  1802.     \@tag}                              % do the tagging
  1803.  
  1804. \def\@tag#1#2{%         does the work for \tag
  1805.    \endgroup                            % end group from \tag
  1806.    \edef\@@temp{#2}%                    % put ``value'' in \@@temp
  1807.    \stripblanks @#1@\endlist            % @name@ -> \tok w/o blanks
  1808.    \XA\let\csname\tok\endcsname=\z@%%   % zero out previous definition
  1809.    \auxout{\tok}{\@@temp}%              % write def to .aux file
  1810.    \XA\xdef\csname\tok\endcsname{\@@temp}% define \@name@ as ``value''
  1811.    }
  1812. %-------------------------*
  1813. %  \label{name} tags \@name@ with the current value of \lab@l, 
  1814. %  which is set to the proper value by various macros, such as 
  1815. %  \chapter, \section, etc...
  1816.  
  1817. \def\label{%  tags a label with the current value of \lab@l
  1818.    \begingroup\unSpecial                % make special characters plain
  1819.     \@label}
  1820.  
  1821. \def\@label#1{%
  1822.    \endgroup                            % special characters restored
  1823.    \tag{#1}{\lab@l}}                    % tag it
  1824.  
  1825. \def\lab@l{\relax}                      % start with empty label
  1826.  
  1827. %-------------------------*
  1828. %  \use{name} uses the value of \@name@ if it is defined; otherwise it
  1829. %  puts {\bf "name"} into the text and writes an error message to the 
  1830. %  log file
  1831.  
  1832. \def\use{%      \use{name} evaluates to \@name@, which is set by \tag
  1833.    \begingroup                                  %
  1834.     \unSpecial                                  %
  1835.     \@use}                                      %
  1836.  
  1837. \def\@use#1{%   does the work for \use
  1838.    \endgroup                                    % end unspecial characters
  1839.    \stripblanks @#1@\endlist                    % @name@ -> \tok w/o blanks
  1840.    \XA\ifx\csname\tok\endcsname\relax\relax     % is \@name@ undefined?
  1841.      \emsg{> UNDEFINED TAG #1 ON PAGE \folio.}% % yes: error message
  1842.      \advance\@BadTags by 1                     % count how many
  1843.      \@errmark{UNDEF}%                          %   and mark in output
  1844.      \edef\tok{{\bf\tok}}%                      % and return \bf ``name''
  1845.    \else                                        % else:
  1846.      \edef\tok{\csname\tok\endcsname}%          %  get the definition
  1847.    \fi                                          %
  1848.    \tok}                                        % evaluate it
  1849.  
  1850.  
  1851. % -- \unSpecial makes certain special characters have ``normal''
  1852. %    catcodes so they can be used in tag labels.
  1853.  
  1854. \def\unSpecial{% gives special characters ``normal'' catcodes
  1855.    \catcode`@=11\catcode`"=12                   %  @ is a letter, " not active
  1856.    \catcode`(=12\catcode`(=12                   %  ( and ) not active
  1857.    \catcode`[=12\catcode`[=12                   %  [ and ] not active
  1858.    \catcode`\&=12\catcode`\#=12                 %  & and # not active
  1859.    }
  1860.  
  1861.  
  1862.  
  1863. %  \stripblanks <text> \endlist removes extraneous blanks from 
  1864. %  the token list in <text> and puts the result in \tok.
  1865. %  \tok is \empty if text is ALL blank.
  1866.  
  1867. \def\stripblanks{%    everything up to \endlist --> \tok, with blanks removed
  1868.    \let\tok=\empty\@stripblanks}
  1869.  
  1870. \def\@stripblanks#1{\def\next{#1}\@striplist}
  1871.  
  1872. \def\@striplist{%
  1873.    \ifx\next\stripblanks\message{>\NX\@striplist: Oops!}\next=\endlist\fi %
  1874.    \ifx\next\endlist\let\next=\relax           %
  1875.    \else\@stripspace\let\next=\@stripblanks\fi %
  1876.    \next}
  1877.  
  1878. \def\@stripspace{\XA\if\space\next\else\edef\tok{\tok\next}\fi}
  1879.  
  1880. \def\endlist{\endlist}                  % \endlist is undefined on purpose
  1881.    
  1882. \def\tok{}
  1883.  
  1884.  
  1885. %  \testtag{name} determines whether the label given by "name" 
  1886. %  is undefined, using the fact that \csname makes a default assignment 
  1887. %  of undefined control sequences to \relax, and sets \undefinedtrue
  1888. %  or \undefinedfalse as appropriate.  The full name is in \tok (with
  1889. %  blanks removed) so you can use it with \csname\tok\endcsname.
  1890. %  Use: \testtag{foo}\ifundefined <stuff> \else <other stuff> \fi
  1891.  
  1892. \newif\ifundefined      \undefinedfalse
  1893.  
  1894. \def\testtag#1{\stripblanks @#1@\endlist   
  1895.    \XA\ifx\csname\tok\endcsname\relax\undefinedtrue
  1896.    \else\undefinedfalse\fi}
  1897.  
  1898.  
  1899.  
  1900. %  \checktags tells you if there were any undefined tags or references...
  1901. %  Use this at the end of a run to warn about possible errors.
  1902.  
  1903. \def\checktags{%  check for any undefined tags
  1904.   \ifnum\@BadTags>\z@                           % any undefine tags?
  1905.     \emsg{>}\emsg{> There were \the\@BadTags\ undefined tags.}%
  1906.     \emsg{> See the file \jobname.log for the citations, or try running}%
  1907.     \emsg{> TeXsis again to resolve forward references.}\emsg{>}%
  1908.   \fi}
  1909.  
  1910.  
  1911. %==================================================*
  1912. % PARSE LABELS.  
  1913. %
  1914. %  \LabelParse <text>;;\endlist parses <text> as an equation,
  1915. %  figure or table label.  It separates out letters, if present (eg. 
  1916. %  label;a for Figure 2a, but the ";" does not appear in output.)  
  1917. %  It increments the counter \@count, if appropriate, and builds an ID in
  1918. %  \@ID.  It also \tag's the label with the value of the ID,
  1919. %  preceeding the label with the prefix \@prefix to distinguish its type.
  1920.  
  1921. \def\LabelParse#1;#2;#3\endlist{% 
  1922.   \if ?#3?\relax                                % if #3 is null, no ";" present
  1923.     \global\advance\@count by\@ne               % so advance count 
  1924.     \xdef\@ID{\@chaptID\@sectID\the\@count}%    % construct value for label
  1925.     \tag{\@prefix#1}{\@ID}%                     % tag the fig number
  1926.   \else                                         % if ; , look for letter
  1927.     \stripblanks #2\endlist                     % remove any blanks from letter
  1928.     \edef\p@rt{\tok}%                           % and save in \p@rt
  1929.     \if a\p@rt\relax                            % if ";" present is it ";a"?
  1930.       \global\advance\@count by\@ne\fi          % yes: advance counter anyway
  1931.     \xdef\@ID{\@chaptID\@sectID\the\@count}%    % construct figure ID
  1932.     \tag{\@prefix#1}{\@ID}%                     % and tag figure #nn
  1933.     \xdef\@ID{\@chaptID\@sectID\the\@count\p@rt}% also fig # w/ letter
  1934.     \tag{\@prefix#1;\p@rt}{\@ID}%               %   and tag #nn;x
  1935.   \fi                                           % end \if ?#3?
  1936. }                                               % end of \LabelParse
  1937.  
  1938. \def\@ID{}                                      % default \@ID is null
  1939.  
  1940. %>>> EOF TXStags.tex <<<
  1941.